package com.ruoyi.web.domain.mes;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.system.domain.vo.PageInfo;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@TableName(value = "mes_user")
public class MesUser extends PageInfo {
    private Long id; // 人员信息表

    @NotBlank(message = "员工编码不能为空")
    private String code; // 员工编码

    private Integer codeNum; // 员工编码序号

    @NotBlank(message = "姓名不能为空")
    @Excel(name = "姓名")
    private String name; // 姓名

    @NotNull(message = "民族不能为空")
    @Excel(name = "民族",
            combo = {"汉族", "藏族", "蒙古族", "维吾尔族", "回族",
                    "朝鲜族", "苗族", "彝族", "壮族", "布依族",
                    "满族", "侗族", "瑶族", "白族", "土家族",
                    "哈尼族", "哈萨克族", "傣族", "黎族", "傈僳族",
                    "佤族", "畲族", "高山族", "拉祜族", "水族",
                    "东乡族", "纳西族", "景颇族", "柯尔克孜族", "土族",
                    "达翰尔族", "仫佬族", "羌族", "布朗族", "撒拉族",
                    "毛南族", "仡佬族", "锡伯族", "阿昌族", "普米族",
                    "塔吉克族", "怒族", "乌孜别克族", "俄罗斯族", "鄂温克族",
                    "德昂族", "保安族", "裕固族", "京族", "塔塔尔族",
                    "独龙族", "鄂伦春族", "赫哲族", "门巴族", "珞巴族",
                    "基诺族"},
            readConverterExp = "1=汉族,2=藏族,3=蒙古族,4=维吾尔族,5=回族," +
                    "6=朝鲜族,7=苗族,8=彝族,9=壮族,10=布依族," +
                    "11=满族,12=侗族,13=瑶族,14=白族,15=土家族," +
                    "16=哈尼族,17=哈萨克族,18=傣族,19=黎族,20=傈僳族," +
                    "21=佤族,22=畲族,23=高山族,24=拉祜族,25=水族," +
                    "26=东乡族,27=纳西族,28=景颇族,29=柯尔克孜族,30=土族," +
                    "31=达翰尔族,32=仫佬族,33=羌族,34=布朗族,35=撒拉族," +
                    "36=毛南族,37=仡佬族,38=锡伯族,39=阿昌族,40=普米族," +
                    "41=塔吉克族,42=怒族,43=乌孜别克族,44=俄罗斯族,45=鄂温克族," +
                    "46=德昂族,47=保安族,48=裕固族,49=京族,50=塔塔尔族," +
                    "51=独龙族,52=鄂伦春族,53=赫哲族,54=门巴族,55=珞巴族," +
                    "56=基诺族")
    private String nation; // 民族

    @NotNull(message = "性别不能为空")
    @Excel(name = "性别", combo = {"男", "女"}, readConverterExp = "1=男,2=女")
    private String sex; // 性别：1男，2女

    @NotNull(message = "在职状态不能为空")
    @Excel(name = "在职状态", combo = {"在职", "试用期", "离职"}, readConverterExp = "1=在职,2=试用期,3=离职")
    private String joinPositionStatus; // 在职状态：1在职，2试用期，3离职

    @Excel(name = "出生日期", dateFormat = "yyyy-MM-dd")
    private Date birthTime; // 出生日期

    @NotNull(message = "政治面貌不能为空")
    @Excel(name = "政治面貌",
            combo = {"群众", "中共党员", "中共预备党员", "共青团员", "民革党员", "民盟盟员", "民建会员",
                    "民进会员", "农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "无党派人士"},
            readConverterExp = "1=群众,2=中共党员,3=中共预备党员,4=共青团员,5=民革党员,6=民盟盟员,7=民建会员," +
                    "8=民进会员,9=农工党党员,10=致公党党员,11=九三学社社员,12=台盟盟员,13=无党派人士")
    private String political; // 政治面貌

    @NotBlank(message = "籍贯不能为空")
    @Excel(name = "籍贯")
    private String nativePlace; // 籍贯

    @NotBlank(message = "身份证号不能为空")
    @Excel(name = "身份证号")
    private String idCard; // 身份证号

    @NotBlank(message = "联系电话不能为空")
    @Excel(name = "联系电话")
    private String telephone; // 联系电话

    @NotNull(message = "最高学历不能为空")
    @Excel(name = "最高学历",
            combo = {"博士", "研究生", "本科", "专科", "高中", "初中", "小学", "其他"},
            readConverterExp = "1=博士,2=研究生,3=本科,4=专科,5=高中,6=初中,7=小学,8=其他")
    private String maxXl; // 最高学历

    @Excel(name = "毕业院校")
    private String graduationSchool; // 毕业院校
    @Excel(name = "所学专业")
    private String profession; // 所学专业
    @Excel(name = "一级部门")
    private String deptOne; // 一级部门
    @Excel(name = "二级部门")
    private String deptTwo; // 二级部门

    @NotNull(message = "入职日期不能为空")
    @Excel(name = "入职日期（如2000-11-11）", dateFormat = "yyyy-MM-dd")
    private Date joinTime; // 入职日期

    @Excel(name = "在职岗位")
    private String joinPositionPost; // 在职岗位

    private String photo; // 照片
    private String signature; // 数字签名

    @Excel(name = "备注")
    private String remark; // 备注

    private String createBy; // 创建者
    private Date createTime; // 创建时间
    private String updateBy; // 更新者
    private Date updateTime; // 更新时间

    private Integer yearTime;
    private Integer monthTime;
    /*所属车间*/
    private int  shworkshop;
}
